import axios from 'axios'
import base from '../constant/base'       //获取后台地址

function f(res){
    if(res.data.code!="SUCCESS"){
        alert("业务逻辑错误")
    }
}

export default function (method = 'get', url = '', type, commit, data = {}, dataErr = {}) {                //参数一类型
    url = base.url + url
    console.log(method+"="+type+"=="+JSON.stringify(data)+"=>"+url)
    const callback = data.callback;                       //成功回调函数
    const ErrCallback = data.ErrCallback;                 //失败回调函数

    delete data.callback                                //在data数据中删除
    delete data.ErrCallback                             //在data数据中删除

    const timeoutData = {
        code:"timeout",
        msg:"连接超时"
    }

    if (method == 'get') {
        let _data_ = {
            params: {}
        }
        Object.assign(_data_.params, data)
        axios.get(url, _data_).then((res) => {
            f(res)
            commit(type, res)
            if (callback) callback()                           //执行成功执行的回调函数

        }, (err) => {
            if (err) {
                var str = err + ''
                if (str.search('timeout') !== -1) {   // 超时error捕获
                    commit(type, timeoutData)
                }
                commit(type, dataErr)
                if (ErrCallback) ErrCallback()                      //执行失败执行的回调函数
            }

        })
    } else if(method == 'post') {

        axios.post(url, data).then((res) => {
            f(res)
            commit(type, res)
            if (callback) callback()                           //执行成功执行的回调函数

        }, (err) => {
            if (err) {
                var str = err + ''
                if (str.search('timeout') !== -1) {   // 超时error捕获
                    commit(type, timeoutData)
                }
                commit(type, dataErr)
                if (ErrCallback) ErrCallback()                      //执行失败执行的回调函数
            }

        })
    } else if(method == 'put') {

        axios.put(url, data).then((res) => {
            f(res)
            commit(type, res)
            if (callback) callback()                           //执行成功执行的回调函数

        }, (err) => {
            if (err) {
                var str = err + ''
                if (str.search('timeout') !== -1) {   // 超时error捕获
                    commit(type, timeoutData)
                }
                commit(type, dataErr)
                if (ErrCallback) ErrCallback()                      //执行失败执行的回调函数
            }

        })
    } else if(method == 'delete') {

        axios.delete(url, data).then((res) => {
            f(res)
            commit(type, res)
            if (callback) callback()                           //执行成功执行的回调函数

        }, (err) => {
            if (err) {
                var str = err + ''
                if (str.search('timeout') !== -1) {   // 超时error捕获
                    commit(type, timeoutData)
                }
                commit(type, dataErr)
                if (ErrCallback) ErrCallback()                      //执行失败执行的回调函数
            }

        })
    }




}